package com.lxj.service;

import com.lxj.common.Result;
import com.lxj.domain.SysRole;
import com.lxj.dto.SysRoleDto;
import com.lxj.vo.PageInfo;

import java.util.List;

/**
 * @author lxj
 * @date 2021/6/18 14:08
 * @Description:角色的服务
 */
public interface RoleService {
    /**
     * 新增角色
     * @param dto
     * @return
     */
    Result addRole(SysRoleDto dto);

    /**
     * 根据id删除角色
     * @param id
     * @return
     */
    Result deleteRoleById(Integer id);

    /**
     * 批量删除角色
     * @param ids
     * @return
     */
    Result batchDelete(Integer[] ids);

    /**
     * 修改角色
     * @param dto
     * @return
     */
    Result updateRole(SysRoleDto dto);

    /**
     * 分页查询
     * @param dto
     * @return
     */
    PageInfo<SysRole> selectPage(SysRoleDto dto);

    /**
     * 使用用户的id查询对应的角色的id
     * @param userId
     * @return
     */
    List<Integer> getUserRoleIds(Integer userId);

    /**
     * 查询所有的角色
     * @return
     */
    List<SysRole> selectAllRoles();

    /**
     * 给用户分配角色数据
     * @param userId
     * @param roleIds
     * @return
     */
    void assign(Integer userId, Integer[] roleIds);

    /**
     * 通过用户的id 查询用户的角色
     * @param id
     * @return
     */
    List<SysRole> findByUserId(Integer id);
}
